package testing.testing;


import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

import org.junit.Before;
import org.junit.Test;

public class CombinatorialTest {
	ArrayList<String> listax;
	ArrayList<String> listay;
	ArrayList<String> listaz;
	//ArrayList<String> values = new ArrayList<String>();
	ArrayList<ArrayList<String>> combinatorial= new ArrayList<ArrayList<String>>(3);
	String values []= new String[3];
	
	@Before
	public void setUp() throws Exception {
		listax= new ArrayList<String>();
		listay= new ArrayList<String>();
		listaz= new ArrayList<String>();
		
		listax.add("0x");
		listax.add("1x");
		listax.add("2x");
		listax.add("3x");
		listax.add("4x");
		listax.add("5x");
		listax.add("6x");
		listax.add("7x");
		listax.add("8x");
		listax.add("9x");
		
		
		listay.add("0y");
		listay.add("1y");
		listay.add("2y");
		listay.add("3y");
		listay.add("4y");
		listay.add("5y");
		listay.add("6y");
		listay.add("7y");
		listay.add("8y");
		listay.add("9y");
		
		listaz.add("0z");
		listaz.add("1z");
		listaz.add("2z");
		listaz.add("3z");
		listaz.add("4z");
		listaz.add("5z");
		listaz.add("6z");
		listaz.add("7z");
		listaz.add("8z");
		listaz.add("9z");
		combinatorial.add(listax);
		combinatorial.add(listay);
		combinatorial.add(listaz);
		
	
	}
	private void combine ( int i,int c) {
		if (i>=combinatorial.size()|| c>=combinatorial.get(i).size())
			return;
		int j;
		for (j = 0; j < combinatorial.get(i).size(); j++) {
			
			values[i]= combinatorial.get(i).get(j);
			combine (i+1,c+1);
		
			printCollection(values);
		}
			
		
	}
	private void printCollection (String []v){
		StringBuffer sbf = new StringBuffer();
		for (int i = 0; i < v.length; i++) {
			sbf.append(values[i]);
		}
		System.out.println(sbf);
	}
	@Test
	public void testCase (){
		combine (0,0);
	}
}
